package com.raft.core.log;

import java.io.File;

/**是一个抽象化的获取指定文件地址的接口
 * @author zhangsulei
 *
 */
public interface LogDir {

    /**初始化目录
     */
    void initialize();

    /**是否存在
     * @return
     */
    boolean exists();

    File getSnapshotFile();

    /**获取EntriesFile对应的文件
     * @return
     */
    File getEntriesFile();

    /**获取EntryIndexFile对应的文件
     * @return
     */
    File getEntryOffsetIndexFile();

    /**获取目录
     * @return
     */
    File get();

    /**重命名目录
     * @param logDir
     * @return
     */
    boolean renameTo(LogDir logDir);

}
